﻿<!--
  A background page that manages notifications.

  Copyright 2010 the Chromium Authors

  Use of this source code is governed by a BSD-style license that can be found
  in the "LICENSE" file.

  Brian Kennish <bkennish@chromium.org>
-->
<script>
    /*
    Displays a notification with the current time. Requires "notifications"
    permission in the manifest file (or calling
    "webkitNotifications.requestPermission" beforehand).
    */
    function show() {
        var time = /(..)(:..)/(Date());              // The prettyprinted time.
        var hour = time[1] % 12 || 12;               // The prettyprinted hour.
        var period = time[1] < 12 ? 'a.m.' : 'p.m.'; // The period of the day.
        var notification = webkitNotifications.createNotification(
      '48.png',                      // The image.
      hour + time[2] + ' ' + period, // The title.
      'Time to make the toast.'      // The body.
    );
        notification.show();
    }

    // Conditionally initialize the options.
    if (!localStorage.isInitialized) {
        localStorage.isActivated = true;   // The display activation.
        localStorage.frequency = 1;        // The display frequency, in minutes.
        localStorage.isInitialized = true; // The option initialization.
    }

    // Test for notification support.
    if (webkitNotifications) {
        // While activated, show notifications at the display frequency.
        if (JSON.parse(localStorage.isActivated)) { show(); }

        var interval = 0; // The display interval, in minutes.
      
        setInterval(function () {
            interval++;

            if (
        JSON.parse(localStorage.isActivated) &&
          localStorage.frequency <= interval
      ) {
                show();
                interval = 0;
            }
        }, 60000);
    } else {
        // Show a new tab with an error message.
        chrome.tabs.create({ url: 'error.html' });
    }
</script>
